package org.jgs1904.mybatis.mapper;

import org.apache.ibatis.annotations.*;
import org.jgs1904.mybatis.entity.User;

import java.util.List;
import java.util.Map;

/**
 * @author: 默苍璃
 * @date: 2022-01-04 15:44
 */
public interface UserMapper {


    /**
     * 通过 注解 查询所有用户
     *
     * @return
     */
    @Select("select * from user")
    List<User> selectUserByAnnotation();


    /**
     * 分页查询所有用户
     *
     * @param startPage
     * @param pageSize
     * @return
     */
    @Select("select * from user limit #{startPage},#{pageSize}")
    List<User> selectUserByPage(@Param("startPage") int startPage, @Param("pageSize") int pageSize);


    /**
     * 根据用户id 查询
     *
     * @param id
     * @return
     */
    User selectUserById(Integer id);

    /**
     * 模糊 查询
     *
     * @param map
     * @return
     */
    List<User> selectUserByMap(Map<String, Object> map);

    /**
     * 根据用户id 删除
     *
     * @param id
     * @return
     */
    @Delete("delete from user where id =#{id}")
    int deleteUserById(Integer id);


    /**
     * 修改一个用户
     *
     * @param user
     * @return
     */
    @Update("update user set name=#{name} where id =#{id}")
    int updateUser(User user);


    /**
     * 通过map修改一个用户
     *
     * @param map
     * @return
     */
    int updateUserByMap(Map<String, Object> map);

    /**
     * 新增一个用户
     *
     * @param user
     * @return
     */
    @Insert("insert into user (id,name,pwd) values (#{id},#{name},#{password})")
    int insertUser(User user);

}
